This invention relates to remote diagnosis of peripheral device malfunctions and, more particularly, to a facility for enabling remote diagnosis of such malfunctions when a firewall device resides between a diagnostic device and the peripheral device experiencing a malfunction.
Currently, when a remotely located peripheral device experiences a malfunction, and a locally-based user is not able to resolve the malfunction, a call is made to a service center and a human-to-human interchange occurs. That call may result in the user being instructed to replace a larger module than would otherwise be replaced if detailed fault analysis was available on site. The call may also require that a service person be dispatched to resolve the problem. These solutions are inherently expensive.
In order to avoid such an expense, diagnostic facilities have been developed that enable a remotely located diagnostic device to obtain information about the malfunctioning peripheral device, without requiring a physical presence at the malfunctioning device. Typically, in the past, equipment manufacturers have employed network protocols such as xe2x80x9cSimple Network Management Protocolxe2x80x9d (SNMP) to perform remote system diagnostics. A person within an organization, where the malfunctioning device is located, is generally charged with management of information services and can utilize SNMP-based software tools to query the status of the malfunctioning device or to invoke a built-in diagnostic functionality and monitor the test results remotely. The chief problem with this approach is that management information systems personnel are generally in short supply and are often not able to respond to such a problem.
Accordingly, many organizations prefer to outsource equipment support to equipment manufacturers or third-party support providers. To allow such external support organizations to use a network-based remote diagnostic tool, requires allowing these organizations access to an local network, generally via an external network, such as the Internet. The problem with this solution is that most local networks are coupled to the Internet via a firewall which only allows unsupervised bilateral passage of e-mail messages. All other incoming messages are blocked, unless they are in response to a specifically identified outgoing message originating from within the organization""s network.
A recently introduced remote support method involves the addition of a modem and phone to the equipment. In this method, the peripheral device can xe2x80x9cplace a phone callxe2x80x9d to a remote diagnostic center that then processes information coming from the malfunctioning device. This-method avoids the firewall problem but introduces problems of its own. For instance, it requires special phone lines to be strung to the equipment and entails the additional cost of such dedicated phone lines, cables, etc. Further, those phone cables may be redundant to the network cabling already connected to the equipment.
Various programming systems enable remote interchange of data between peripheral systems and, more particularly, control of remotely located devices via embedded software. One well-known facility exists on the World-Wide Web (WWW) and is known as the Hypertext Transfer Protocol (HTTP). This is a standard WWW data transfer protocol wherein each interaction consists of one ASCII Request message followed by one Response message. The HTTP protocol includes two distinct items: a set of Requests from browsers to servers and a set of Responses going back the other way. HTTP supports two kinds of Requests, i.e., simple Requests and full Requests. A simple Request is just a single xe2x80x9cgetxe2x80x9d line naming a desired page, without the protocol version. A full Request is indicated by the presence of a protocol version on the xe2x80x9cgetxe2x80x9d Request line. Essentially, the get method requests a server to send a web page to the requesting party.
In addition to the HTTP messaging protocol, various programming systems enable control of embedded routines in remote devices. The Java language provides such a capability via the Java Virtual Machine (JVM) which, when installed on a device, enables a Java program to run in such a manner that it is isolated from the native run time environment. This thereby affords portability between machines that is not achievable through native binary executable code. Essentially, a JVM is en embedded piece of software/firmware that can be caused to run either locally stored subroutines or remotely supplied subroutines.
Further protocols enable a similar capability. Among those are the Microsoft xe2x80x9cComponent Object Modelxe2x80x9d (COM) that is a client/server, object-based programming model designed to promote software interoperability; and the Common Object Request Broker Architecture (CORBA) adopted by the OMG Consortium. COM provides a means for client objects to make use of server objects, despite the fact that the two entities may have been developed by separate organizations, using different programming languages at different times. DCOM is an extension of the COM programming model and allows COM clients to manipulate COM objects that are located on physically separated machines through what amounts to remote procedure calls. CORBA provides similar capabilities. Notwithstanding the availability of these distributed processing/communication models, the presence of firewalls create problems in regards to their respective implementations.
It is therefore an object of this invention to provide a programming system that enables a remotely located device to perform diagnostic routines for the purpose of analyzing malfunction states.
It is another object of this invention to provide a remote malfunction diagnosis capability that can operate in the presence of a firewall facility that protects a device to be diagnosed.
It is yet another object of this invention to provide a remote diagnosis facility that can download executable diagnostic code through a firewall to a device evidencing a malfunction.
It is still another object of the invention to allow operation a remote diagnostic system in the presence of a firewall, without modification of the firewall""s security procedures.
The invention is utilized in the context of a peripheral device that is coupled to a network via a firewall which blocks unwanted incoming message traffic, except for incoming message traffic that is responding to a message dispatched from the peripheral device. A remotely located diagnostic device, which includes code for diagnosis of causes of peripheral device malfunctions, is connected to communicate via the network.
The peripheral device includes a processor for controlling its operation, a memory for storing a diagnostic application that, in combination with the processor, is adapted to execute one or more diagnostic subroutines for diagnosing a cause of a device malfunction. The peripheral device incorporates a communication facility that is enabled to dispatch an event message to the remote diagnostic device and to receive a response message from the remote diagnostic device (all via the network and through the firewall). The response message instructs the peripheral to execute a diagnostic subroutine.
Accordingly, the remote device is able to dynamically control diagnostic subroutines in the peripheral device so as to interactively diagnose the malfunction.